Jump To:
Technical Q&As
Carbon is a set of APIs that enables C and C++ developers to take advantage of Mac OS X-specific features, including an advanced user interface tool kit, an efficient event-handling mechanism, the Quartz 2D graphics library, and multiprocessing support. In addition, other industry-standard C and C++ APIs are easily available to Carbon developers, providing access to such services as the OpenGL drawing system, the Mach microkernel, and BSD operating-system services. Because Carbon is a collection of C programming interfaces, developers can use virtually any Macintosh C development environment that supports PowerPC to build Carbon applications.

Carbon Resources
A guided introduction and learning path for developers new to Carbon.   Essential information for developers using procedural C.   Descriptions of procedural C programming interface elements.
Document Descriptions
On Off
Display

Sorted by
Title
Sort by
Topic
Sort by
Date
Storing file references in CFPreferences (HTML)
QA1350: Storing file references in CFPreferences
Runtime Architecture 2004-10-01
Styled Custom Dialog Items Under Nav Services (HTML) ()
TB58: Describes how to customize the font characteristics of custom items in a NavPutFile dialog.
Human Interface Toolbox 1999-01-11
Suppressing the "unexpectedly quit" alert (HTML)
QA1288: Describes how to suppress the "unexpectedly quit" alert.
User Experience 2003-10-10
Synchronizing Sounds to Video (HTML) ()
Deprecated - SND19: Enabling regular sound callbacks under Mac OS 9 and Sound Manager 4.0.
Music & Audio 1999-10-05
Synchronous SysBeep (HTML) ()
Deprecated - SND18: Obtaining a synchronous SysBeep with Sound Manager 3.1.
Music & Audio 1999-10-05
Synchronous TCP OTConnect Client Call Completes Before Server Responds (HTML) ()
Deprecated - NW24: Explains why an OTConnect call will complete before the server responds.
Networking 1996-05-14
T_DATA_REQ vs M_DATA TPI Message Blocks (HTML) ()
NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ.
Networking 1996-10-25
Targeting DebuggingCarbonLib asserts (HTML)
Deprecated - QA1033: Describes how to focus DebuggingCarbonLib asserts to a single application.
Runtime Architecture 2001-05-04
TCP Option Sizes (HTML)
Deprecated - NW27: Tells where to get more information on TCP Option sizes and setting TCP Options.
Networking 1996-05-14
TCP/IP Option Sizes (HTML) ()
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Networking, Porting 1999-04-26
Temporary Memory (HTML) ()
ME08: Discusses the tradeoff between temporary memory and system memory for short-lived memory requirements.
Resource Management 1998-08-24
Text Encodings in VFS (HTML) ()
QA1173: How to handle text encodings correctly when writing a file system (VFS) plug-in for Mac OS X.
File Management 2003-02-10
Third party VFS can't unmount on Mac OS X 10.3 (HTML)
QA1308: Describes changes in unmounting behavior for VFS plug-ins under Mac OS X 10.3 "Panther."
File Management 2003-10-23
Timely Issues - 1904 (HTML) ()
OPS23: Explains why the beginning of the year 1904 was chosen for epoch of the Time global variable.
Resource Management 1999-05-17
Translating Postscript font file names (HTML) ()
TX09: Describes how to translate a font name to a Postscript font file name.
Text & Fonts 1997-11-17
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Graphics & Imaging, Printing 2001-07-02
Unexpected CG state changes (HTML)
QA1045: Explains why the Core Graphics drawing state sometimes changes for no apparent reason.
Graphics & Imaging, Printing 2001-07-02
Updating OpenGL Contexts (HTML) ()
QA1209: When and why to update an OpenGL context in response to system and user actions.
Games, Graphics & Imaging 2003-06-19
Updating the TXT record of a Rendezvous service (HTML)
QA1302: Explains how to update a Rendezvous TXT record while running on either Jaguar or Panther.
Networking 2004-07-14
URL Access and the Missing Progress Dialog (HTML) ()
Deprecated - QA1140: Explains a known bug in URL Access related to progress dialogs.
Networking 2002-09-23
URL Access vs. CFNetwork (HTML)
QA1291: Explains when to choose URL Access or CFNetwork when downloading files from within your application.
Networking 2003-10-29
Using AppleScript to send an email with an attachment (HTML) ()
QA1018: Explains how to send an attachment with an email message using an AppleScript.
Interapplication Communication 2002-01-04
Using Clip Region and Buffer Rectangles with OpenGL Carbon (HTML) ()
QA1222: Shows the basics of using buffer rectangles and clip regions with AGL.
Games, Graphics & Imaging 2002-12-19
Using cmPathBased profile locations on Mac OS X (HTML) ()
QA1203: Shows how to correctly specify cmPath-based profile locations on Mac OS X
Graphics & Imaging 2002-11-06
Using Navigation Services to filter QuickTime files (HTML) ()
QA1152: Using the CanQuickTimeOpenFile function in a Navigation Services filter to display files that QuickTime can open.
Human Interface Toolbox 2002-07-15
Using qd and QDGlobals (HTML) ()
Deprecated - QD40: Why a sample program compiled with SC may give the link error: undefined entry qd. Provides a solution.
Graphics & Imaging, User Experience 1996-02-09
Using Sound control panel to configure the sound input settings (HTML) ()
SND17: Under Mac OS 9.0, configuring sound input settings isn't possible after application launch.
Music & Audio 1999-10-05
Using Temporary Memory with OpenPicture (HTML)
Deprecated - QD20: Provides several techniques of causing OpenPicture to allocate temporary memory for a picture handle.
Games, Graphics & Imaging, Performance, User Experience 1996-02-01
Using the Wide Routines in <FixMath.h> (HTML)
TB14: Details the Wide routines listed in the FixMath.h header (WideDivide, WideCompare, WideBitShift, WideShift, etc.).
Human Interface Toolbox 1995-06-01
The 'vers' Resource and Your Place in the World (HTML)
TX14: Setting the correct country code in the 'vers' resource to reflect the application's localization.
Resource Management 2000-05-01
WaitMouseUp documentation errata (HTML)
QA1008: Specifies the correct behavior of the WaitMouseUp function.
Events & Other Input 2001-02-27
What is the minimal set of Carbon Events I need to override in order to implement a simple custom push button? (HTML) ()
QA1210: Details the minimal set of Carbon Events needed to implement a simple custom push button HIView.
Human Interface Toolbox 2002-11-12
Why am I drawing directly to the screen? (HTML)
QA1015: Explains why drawing to a window's backbuffer can affect the upper left corner of the screen instead.
Graphics & Imaging 2004-02-19
Why doesn't my Scrolling Text Box control work in a compositing window? (HTML)
QA1324: Explains why some older controls do not function properly in compositing windows and points to a replacement.
Human Interface Toolbox 2003-11-13
Why isn't my edit text box in my Navigation dialog's custom area working on 10.3? (HTML)
QA1315: Explains a bug in the Mac OS X 10.3 Navigation Services Custom Area involving the EditText and its work around.
Human Interface Toolbox, User Experience 2003-10-28
Why isn't my Static Text Control deactivating when my other controls are? (HTML) ()
QA1125: Explains why a Static Text Control is not deactivating when the other controls are.
Human Interface Toolbox 2002-03-11
Window Manager and EraseRect (HTML)
Deprecated - QD26: Why WindowManager causes a flicker using EraseRect and provides a solution for this problem.
Graphics & Imaging, User Experience 1995-09-15
X11 FAQ (HTML) ()
QA1232: Frequently Asked Questions about using Apple's X Window System (X11) implementation.
Human Interface Toolbox 2003-11-17
Yielding Time Without Getting Events (HTML)
PS06: Describes how to yield processor time to other processes without accepting user interface events.
Process Management 2000-10-16